cmake_minimum_required(VERSION 3.14)

project(DynamicCreate LANGUAGES CXX)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core SerialPort)

add_executable(DynamicCreate
  main.cpp
  operation.h operation.cpp
  delay.h delay.cpp
  movejoint.h movejoint.cpp
  controlled.h controlled.cpp
  device.h device.cpp
  rs232.h rs232.cpp
  ethernet.h ethernet.cpp
  description.h description.cpp
  step.h step.cpp
  objectfactory.h objectfactory.cpp
  snap.h snap.cpp
  ledcontroller.h ledcontroller.cpp
  wordopledcontroller.h wordopledcontroller.cpp


)
target_link_libraries(DynamicCreate Qt${QT_VERSION_MAJOR}::Core)
target_link_libraries(DynamicCreate Qt${QT_VERSION_MAJOR}::SerialPort)


include(GNUInstallDirs)
install(TARGETS DynamicCreate
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
